package com.ajie.entity.enums;

import com.ajie.model.Result;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.poi.ss.formula.functions.T;

/**
 * @author: ajie
 * @createTime: 2024-08-17 14:38
 */
@Getter
@AllArgsConstructor
public enum ErrorMsg {

    SYSTEM_ERROR(-1, "系统繁忙，请开稍候再试"),
    ACCESS_TOKEN_ERROR(40001, "AppSecret 错误"),
    INVALID_APPID(40013, "不合法的 AppID"),
    INVALID_GRANT_TYPE(40002, "不合法的凭证类型"),
    INVALID_SECRET(40125, "不合法的 secret"),
    IP_ERROR(40164, "调用接口的IP地址不在白名单中"),
    SECRET_MISS(41004, "缺少 secret 参数"),
    DISABLED_TOKEN(50004, "禁止使用 token 接口"),
    ACCOUNT_DISABLED(50007, "账号已冻结"),
    THIRD_ERROR(61024, "第三方平台 API 需要使用第三方平台专用 token"),
    JS_CODE_ERROR(40029, "js_code 无效"),
    JS_CODE_BEN_USE(40163, "js_code 不能使用"),
    API_MORE_ERROR(45011, "API 调用太频繁，请稍候再试"),
    USER_WARNING(40226, "高风险等级用户，小程序登录拦截"),
    MEDIA_ERROR(40004, "媒体类型错误（目前支持多媒体类型 1 音频；2 图片）"),
    MSG_ERROR(40129, "场景值错误（目前支持场景 1 资料；2 评论；3 论坛；4 社交日志）"),
    POST_REQUEST(43302, "方法调用错误，请用post方法调用"),
    PARAMS_EMPTY(44002, "传递的参数为空"),
    APPID_NO_MATCH_SECRET(43104, "appid与 openid 不匹配"),
    API_MINUTE_ERROR(44991, "超出接口每分钟调用限制"),
    API_DAY_ERROR(45009, "超出接口每日调用限制"),
    RESULT_WARNING(87014, "内容可能潜在风险"),
    POST_BODY_ERROR(47001, "传递的参数格式不对"),
    TOKEN_ERROR(61010, "会话超时");

    private int code;

    private String message;

    public static <T> Result<T> getResult(int code) {
        for (ErrorMsg value : ErrorMsg.values()) {
            if (value.code == code) {
                return Result.error(value.code, value.message);
            }
        }
        return Result.error();
    }


}
